Monitoring construction of a structure

ABSTRACT

A computer system generates a three-dimensional (3D) visualization of a building structure that is undergoing construction. The system can determine a location of an object in the building structure and map the object to an expected object in a 3D model of the building structure. The system can detect a discrepancy between the object of the building structure and the expected object in the 3D model, and determine that the discrepancy exceeds a threshold, which constitutes a reportable error. In response, the system can determine a modification to the building structure to compensate for the discrepancy, adjust a schedule for construction or a cost estimate to compensate for an impact of the discrepancy or the modification to the building structure, and send a message that reports the discrepancy and the modification.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/610,310, filed May 31, 2017 and now pending, which is anon-provisional application filed under 37 C.F.R. § 1.53(b), claimingpriority under U.S.C. Section 119(e) to U.S. Provisional PatentApplication Ser. No. 62/360,358 filed Jul. 9, 2016, the entiredisclosure of which is hereby expressly incorporated by reference in itsentirety.

BACKGROUND

Constructing complex structures, such as buildings, requires the properinstallation/assembly of many components. Construction workers needs toproperly locate and install/assemble an incredible amount of components,such as beams, pipes, ducts, studs, walls, etc. For example, somecomplex structures have millions of components that need to be installedwith a location accuracy of within an eighth of an inch, or even less insome cases. Unfortunately, the construction process is subject toerrors, which can cause significant amounts of re-work and scheduledelay. For example, a wall may be installed at a wrong location. If theerror is not detected in a timely fashion, a significant amount ofre-work may result. A plumber may run water lines through the improperlylocated wall, an electrician may run electrical wires through theimproperly located wall, a carpenter may add sheetrock to the improperlylocated wall, etc. When the error is detected, the wall may need to bedemolished and rebuilt in the proper location in order to rectify theerror, and the water lines, electrical wires, sheetrock, etc. may needto be reinstalled. Such errors may cause significant schedule delays andmay result in significant additional costs for the construction project.Similar issues exist in the construction of other complex structures,such as airplanes, ships, submarines, space vehicles, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram illustrating an environment in which aconstruction monitoring system may be implemented, consistent withvarious embodiments.

FIG. 2 is a flow diagram illustrating an example process of monitoringprogress of a construction project, consistent with various embodiments.

FIG. 3 is a flow diagram illustrating an example process of training aneural network, consistent with various embodiments.

FIG. 4 is an illustration of a web interface that provides a milestoneprogress status for several groups of tasks of a construction project,consistent with various embodiments.

FIG. 5 is an illustration of an application running on a mobile devicethat provides historic progress towards a project milestone, consistentwith various embodiments.

FIG. 6 is an illustration of an application running on a mobile devicethat enables a user to set an alert, consistent with variousembodiments.

FIG. 7A is an illustration of an application running on a mobile devicethat provides an error notification alert, consistent with variousembodiments.

FIG. 7B is an illustration of an application running on a mobile devicethat provides a messaging system for reporting errors, consistent withvarious embodiments.

FIG. 8A is an illustration of an application running on a mobile devicethat enables a user to set alert notification parameters, consistentwith various embodiments.

FIGS. 8B and 8C are illustrations of an application running on a mobiledevice that provides an alert when a productivity level falls below athreshold, consistent with various embodiments

FIG. 9 is an illustration of an application running on a mobile devicethat enables a user to upload various project-related files, consistentwith various embodiments.

FIG. 10 is an illustration of an application running on a mobile devicethat enables a user to customize project settings, consistent withvarious embodiments.

FIG. 11 is an illustration of an application running on a mobile devicethat enables a user to download and upload project-related files,consistent with various embodiments.

FIG. 12 is an illustration of an application running on a mobile devicethat enables a user to review invoice-related data, consistent withvarious embodiments.

FIGS. 13A and 13B are illustrations of an application running on amobile device that enables a user to submit a new invoice, consistentwith various embodiments.

FIG. 14 is an illustration of an application running on a mobile devicethat enables a user to review invoice-related data, consistent withvarious embodiments.

FIG. 15 is an illustration of an application running on a mobile devicethat enables a user to review budget-related data, consistent withvarious embodiments.

FIG. 16 is an illustration of an application running on a mobile devicethat enables a user to invite other users to access data of or utilizethe application, consistent with various embodiments.

FIG. 17 is a block diagram illustrating an example of a processingsystem in which at least some operations described herein can beimplemented, consistent with various embodiments.

FIG. 18 is an illustration depicting a visualization of threedimensional point data, consistent with various embodiments.

FIGS. 19A-C are illustrations depicting aligning data derived from amodel of a building and sensor data derived from a sensor reading of abuilding, consistent with various embodiments.

FIGS. 20A-D are illustrations depicting visualizations of data derivedfrom sensor readings of a building after components associated with thebuilding have been identified, consistent with various embodiments.

DETAILED DESCRIPTION

Introduced here is a technique for monitoring construction of astructure, such as a building. In an example, the process ofconstructing a building starts with designing the building and planningthe construction of the building. The process of designing the buildingincludes capturing the design of the building via one or morecomputer-aided-design (CAD) applications. A CAD application can be athree dimensional (3D) CAD application, a two dimensional (2D) CADapplication, among others. For example, the design of the supportingstructure of the building may be captured via a 3D CAD application thatsupports structural analysis, such as by determining the effects ofloads and stresses on structures and their components. The plumbingdesign may be captured via a 3D CAD application optimized for analysisand construction of plumbing components. The electrical wiring designmay be captured via a 2D CAD application optimized for analysis andconstruction of electrical components. While in this example the 2D CADapplication used to capture the electrical wiring design is notinherently 3D, it supports the creation of a 3D view of the electricalwiring design of the building. Electrical components that are input viaa 2D CAD application can be annotated with a physical attribute(s), suchas elevation, depth, etc., which can be used to determine 3D locationsof the components.

Once the construction project is under way, construction crews constructthe building as indicated by the building design data captured by thevarious CAD applications. On a periodic basis, such as daily, weekly,etc., sensor data is obtained by one or more sensors based on sensorscans of the building. Physical properties of the components of thebuilding can be determined based on the sensor data. In an example, arobot with sensors that include a LIDAR system and a video camera roamsthe construction site on a weekly basis. The robot uses the LIDAR systemto obtain scans of all the parts of the building, and uses the videocamera to obtain video images of all of the parts of the building. Thesensor data from the LIDAR system is used to identify the 3D locationsof the various components of the building, and the sensor data from thevideo camera is used to identify the colors of the various components.The sensor data is uploaded to cloud storage.

A computer system creates a 3D representation of the building designplans, referred to herein as a “3D design view,” based on the buildingdesign data captured by the various CAD applications. The computersystem downloads the sensor data from cloud storage and similarlycreates a 3D representation of the current state of the building,referred to herein as a “3D progress view,” based on the data capturedby the sensor(s). The system analyzes the 3D design view and the 3Dprogress view to identify the various components of building depicted inthe views, and maps the components of the 3D progress view tocorresponding components of the 3D design view. The computer systemanalyzes the data to detect discrepancies between components of the twoviews. In the above example where the wall is installed at an incorrectlocation, the computer system maps the wall of the 3D progress view to acorresponding wall of the 3D design view, and determines that theinstalled wall is not located as indicated by the design plans. Thecomputer system determines that the installation discrepancy is above apredetermined threshold and that the discrepancy is a reportable error,and sends a notification of the error to the project managers.

As a result of the error in the location of the wall being caught early,the error is remedied before additional work has begun, resulting in asignificant reduction in the impact of the error on the schedule andcosts of the construction project. By timely detecting the error, thelocation of the wall can be fixed before any subsequent constructioninvolving the wall is started, resulting in avoidance of re-work of thesubsequent construction. For example, by detecting the error of thelocation of the wall early, the wall can be fixed before anyplumbing/electrical/sheetrock/etc. work that involves the wall isstarted.

The disclosed technique further provides improved accuracy constructionprogress status. In an example, during planning of a constructionproject, a schedule is developed. The schedule identifies projectmilestones, tasks that are to be completed for the milestone, and thedate of completion of each project milestone. The computer systemanalyzes the schedule data and maps each milestone to a set ofcomponents of the 3D design view that are to be installed to accomplishthe completion of the milestone. The computer system compares thecomponents that have been properly installed against the list ofcomponents associated with the milestone, and determines how muchprogress has been made towards the milestone. Where the computer systemdetects a discrepancy in installation of a component above a threshold,the computer system does not give credit for that component beingproperly installed, nor does it give credit for associated componentsthat need to be modified or removed to address the discrepancy. As aresult of detecting discrepancies in a timely fashion and not givingcredit for components that have been improperly installed, the disclosedtechnique improves upon existing progress status evaluation techniques.

The disclosed technique additionally provides for improved accuracyconstruction schedule and cost estimation. In the above example, whenthe computer system detects the discrepancy in installation of thecomponent, not only does the computer system not give credit for theinstallation of the component, the computer system also determines theapproximate schedule and cost impact of addressing the discrepancy. Thecomputer system analyzes the discrepancy and determines which componentsneed to be removed or modified to address the discrepancy, and alsodetermines the associated schedule and cost impacts that result from theremoval or modification. The computer system further analyzes the impacton subsequent tasks, and provides resulting schedule and cost impacts.

In some embodiments, the disclosed technique enables earlier detectionof errors or discrepancies, improved accuracy monitoring of constructionprogress, and improved accuracy project schedule or cost estimations.While the examples discussed above are related to construction of abuilding, the technique can be similarly applied to other complexstructures, such as airplanes, ships, submarines, space vehicles, etc.

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the embodiments, andillustrate the best mode of practicing the embodiments. Upon reading thefollowing description in light of the accompanying figures, thoseskilled in the art will understand the concepts of the disclosure andwill recognize applications of these concepts that are not particularlyaddressed here. It should be understood that these concepts andapplications fall within the scope of the disclosure and theaccompanying claims.

The purpose of terminology used herein is only for describingembodiments and is not intended to limit the scope of the disclosure.Where context permits, words using the singular or plural form may alsoinclude the plural or singular form, respectively.

As used herein, unless specifically stated otherwise, terms such as“processing,” “computing,” “calculating,” “determining,” “displaying,”“generating,” or the like, refer to actions and processes of a computeror similar electronic computing device that manipulates and transformsdata represented as physical (electronic) quantities within thecomputer's memory or registers into other data similarly represented asphysical quantities within the computer's memory, registers, or othersuch storage medium, transmission, or display devices.

As used herein, terms such as “connected,” “coupled,” or the like, referto any connection or coupling, either direct or indirect, between two ormore elements. The coupling or connection between the elements can bephysical, logical, or a combination thereof. References in thisdescription to “an embodiment,” “one embodiment,” or the like, mean thatthe particular feature, function, structure or characteristic beingdescribed is included in at least one embodiment of the presentdisclosure. Occurrences of such phrases in this specification do notnecessarily all refer to the same embodiment. On the other hand, theembodiments referred to also are not necessarily mutually exclusive.

As used herein, terms such as “cause” and variations thereof refer toeither direct causation or indirect causation. For example, a computersystem can “cause” an action by sending a message to a second computersystem that commands, requests, or prompts the second computer system toperform the action. Any number of intermediary devices may examineand/or relay the message during this process. In this regard, a devicecan “cause” an action even though it may not be known to the devicewhether the action will ultimately be executed.

Note that in this description, any references to sending or transmittinga message, signal, etc. to another device (recipient device) means thatthe message is sent with the intention that its information contentultimately be delivered to the recipient device; hence, such referencesdo not mean that the message must be sent directly to the recipientdevice. That is, unless stated otherwise, there can be one or moreintermediary entities that receive and forward the message/signal,either “as is” or in modified form, prior to its delivery to therecipient device. This clarification also applies to any referencesherein to receiving a message/signal from another device; i.e., directpoint-to-point communication is not required unless stated otherwiseherein.

As used herein, unless specifically stated otherwise, the term “or” canencompass all possible combinations, except where infeasible. Forexample, if it is stated that data can include A or B, then, unlessspecifically stated otherwise or infeasible, the data can include A, orB, or A and B. As a second example, if it is stated that data caninclude A, B, or C, then, unless specifically stated otherwise orinfeasible, the data can include A, or B, or C, or A and B, or A and C,or B and C, or A and B and C.

FIG. 1 is a system diagram illustrating an environment in which aconstruction monitoring system may be implemented, consistent withvarious embodiments. In environment 100 of FIG. 1 , robot 110 istraversing a construction site. Robot 110 navigates around building 105and other portions of the construction site in order to obtain sensorreadings related to physical properties associated with the constructionproject. For example, robot 110 obtains sensor readings of some or allof building 105. While a robot is used in this example, any of variousmethods can be utilized to obtain sensor readings related to theconstruction project. For example, a drone that includes a sensor can beutilized to autonomously navigate around the construction site and takesensor readings, a person with a backpack that contains a sensor canwalk around the construction site and take sensor readings, etc.

In the example of FIG. 1 , robot 110 traverses a path that is optimizedto efficiently obtain sensor readings of all accessible portions ofbuilding 105. In some embodiments, robot 110 also traverses and obtainssensor readings of areas outside of building 105. For example, robot 110may obtain sensor readings of landscape (to monitor development progressof landscaping), a sports facility (to monitor construction progress of,e.g., a basketball court, tennis court, pool, etc.), another building(to monitor construction progress of the other building), a parking lotor parking structure (to monitor construction progress of the parkinglot or structure), etc.

As part of the construction project, a project design team, with teammembers such as architects, structural engineers, mechanical engineers,electrical engineers, etc., developed plans for the constructionproject, including design plans for the various components associatedwith building 105. The components can include, for example, structuralbeams, floors, flooring, walls, plumbing, electrical wiring, firesprinklers, door frames and doors, external windows, internal windows,bathrooms, computer centers, surgery centers, lighting, landscaping, airconditioners, ducts, water heaters, water filtration systems, gyms,cafeterias, cabinets, closets, security systems, bulk heads, water tightdoors, engines, propellers, etc. The design team captures the design ofthe construction project via one or more CAD applications.

Some examples of construction-related CAD applications include thefollowing.

Product Name Manufacturer Primary Function Cadpipe HV AC AEC DesignGroup 3D HVAC Modeling Reit Architecture Autodesk 3D ArchitecturalModeling and parametric design AutoCAD Architecture Autodesk 3DArchitectural Modeling and parametric design. Reit Structure Autodesk 3DStructural Modeling and parametric design Revit MEP Autodesk 3D DetailedMEP Modeling AutoCAD MEP Autodesk 3D MEP Modeling AutoCAD Civil 3DAutodesk Site Development Cadpipe Commercial Pipe AEC Design cs. oup 3DPipe Modeling DProftler Beck Technology 3D conceptual modeling withren]- time cost estimating. Bentley BINE Suite Bentley Systems 3DArchitectural, Structural, Mechanical, (MicroStation, BentleyElectrical, and Generative Components Modeling Architecture, Structural,Mechanical_Electrical, Generative Design) Fastrak CSC (UK) 3D StructuralModeling SDS/2 Design Data 3D Detailed Structural Modeling Fabricationfor AutoCAD MEP East Coast CADICAM 3D Detailed MEP Modeling DigitalProject Project Technologies CATIA based BIM System far Architectural;Design, Engineering, and Construction Modeling Digital Project MEPSystems Geliry Technologies MEP Design Routing ArchiCAD Graphi soft 3DArchitectural Modeling MEP Modeler Graphisoft 3D MEP Modeling HydraCADHydrates 3D Fire Sprinkler Design and Modeling AutoSPRENK VR MEP_CAD 3DFire Sprinkler Design and Modeling FireCad Mc4 Soil-ware Fire PipingNetwork Design and Modeling CAD-Duct Micro Application 3D Detailed MEPModeling Vectorworks Designer Nemetschek 3D Architectural Modeling DuctDesigner 3D, Pipe QuickPen International 3D Detailed MEP ModelingDesigner 3D RISA RISA Technologies Full suite of 2D and 313 StructuralDesign Applications Tekla Structures Tekla 3D Detailed StructuralModeling Affinity Trelligence 3D Model Application for early conceptdesign Vico Office Vico Soft-are 5D Modeling which can be used togenerate cost and schedule data PowerCivil Bentley Systems SiteDevelopment Site Design, Site Planning Eagle Point Site DevelopmentSource: FIG. 20, BIM Authoring Tools (Reinhardt, 2009)

Some CAD applications may inherently support 3D design capture andvisualization, while others may not. Where 3D analysis is required and aCAD application does not inherently support 3D views, the CADapplication can store data needed to generate a 3D view, such aselevation, depth, etc. of various components, which can be utilized todetermine 3D locations of the components. Data derived from the designplan data, which can be or include the design plan data, can be storedat cloud storage 130, can be stored at storage local to robot 110, orcan be stored at other locations.

Robot 110, having access to design plan data, is able to utilize thedesign plan data to generate a 3D representation of building 105, and isable to navigate around building 105 by use of the 3D representation.For example, a computer, which can be physically coupled to robot 110,or can be remote, can correlate features of building 105, as determinedbased on sensor readings of building 105, with features of the designplans of building 105, and can use the design plans to navigate aroundbuilding 105, taking into account that the construction of building 105is only partially complete. In some embodiments, robot 110 is able tonavigate around building 105 without having access to a 3Drepresentation of building 105. For example, the boundaries of building105 can be input to robot 110, the coordinates of a geo-fence can betransmitted to robot 110, etc., and robot 110 can use a navigationsystem, such as based on global position satellites (GPS) or autonomousnavigation capabilities, to traverse the various portions of building105, or of any other area related to the construction project.

As robot 110 traverses the construction site, robot 110 uses itssensors, such as LIDAR system 115 and imaging system 120, to obtainsensor readings. The sensor readings of LIDAR system 115 include 3Dpoint cloud data, also referred to as 3D point data, from which physicalproperties of components related to the construction project can bederived. A portion of the 3D point cloud data includes data from whichphysical properties of components related to building 105, such as 3Dlocations of various surface points of various components of orassociated with building 105, can be derived. FIG. 18 is an example of avisualization of 3D point cloud data obtained by a LIDAR system, such asLIDAR system 115.

The sensor readings of imaging system 120 includes imaging data, such asstill picture or video data, from which physical properties ofcomponents related to the construction project can be derived. A portionof the imaging data includes data from which physical properties ofcomponents related to building 105 can be derived, such as the color ortexture of surfaces of components, among others. Examples of componentsof building 105 include a pipe, beam, wall, floor, ceiling, toilet,roof, door, door frame, metal stud, wood stud, light fixture, piece ofsheetrock, water heater, air conditioner unit, water fountain, cabinet,table, desk, refrigerator, sink, among others. Examples of components oflandscaping include a tree, shrub, bench, mound, walkway, light fixture,sprinkler head, drainage fixtures, among others. Examples of physicalproperties of components include 3D locations of points on the surfaceof the component, the surface texture of the component, the 3D locationof the component, the color of the component, the density or weight ofthe component, the reflectivity of the component, material type, uniqueidentification of a component, unique identification of a material of acomponent, a flow rate, a gauge or thickness of a material of thecomponent, among others.

In this example, robot 110 wirelessly transmits data derived from thesensor readings, which can be or include the raw sensor readings, tocloud storage 130 via network 125 for storage, where computer system 135is able to access the stored data. Network 125 can be or can include theInternet. In some embodiments, robot 110 stores the data derived fromthe sensor data at storage local to robot 110, where computer system 135is able to access the data. In some embodiments, computer system 135 islocal to robot 110.

Computer system 135 accesses the data stored at cloud storage 135 or atlocal storage. Computer system 135 creates a 3D design view based on thedesign plan data and identifies the various components of the 3D designview. Computer system 135 creates a 3D progress view based on the sensordata and identifies the various components of the 3D progress view.Computer system 135 maps components of the 3D progress view tocorresponding components of the 3D design view, and analyzes the data todetect physical discrepancies between the two views. In someembodiments, when the discrepancy is above a predetermined threshold,the discrepancy is reported as an error. FIGS. 7A and 7B provideexamples of interfaces for reporting errors. FIG. 7A is an illustrationof an application running on a mobile device that provides an errornotification alert. FIG. 7B is an illustration of an application runningon a mobile device that provides a messaging system that supports errorreporting.

Physical discrepancies can include, for example, a 3D progress viewcomponent being located at a different location as compared to itscorresponding 3D design view component, being of an different dimensionas compared to its corresponding 3D design view component, being of adifferent color as compared to its corresponding 3D design viewcomponent, being comprised of a different material as compared to itscorresponding 3D design view component, having a different surfacetexture as compared to its corresponding 3D design view component, beinga different component as compared to its corresponding 3D design viewcomponent (e.g., being a 45 degree angle joint as compared to a 90degree angle joint, being an a brand one air conditioning unit ascompared to a brand 2 air conditioning unit, being an iron pipe ascompared to a copper pipe, etc.). In some embodiments, the differencemay need to be above a predetermined threshold to be considered areportable discrepancy (e.g., a location error in excess of ⅛ of aninch). In some cases, the threshold, also sometimes referred to asaccuracy tolerance, is input by the design team or by other methods asannotations on the components of the design plans. For example, a pipemay have an accuracy tolerance of ⅛ of an inch, and that tolerance maybe added as an annotation on the pipe via a CAD application used tocreate design plan data. When the discrepancy between the location ofthe component in the 3D design view and the 3D progress view is greaterthat the accuracy tolerance, the discrepancy can be reported as anerror.

Computer system 135 is able to detect other types of discrepancies. Insome embodiments, the data stored at cloud storage 135 includes scheduledata or other performance metrics. Computer system 135, based on theabove mapping and analysis, is able to determine which components havebeen properly installed, which have not been installed at all or havebeen only partially installed, or which have been installed incorrectly.Based on this analysis, computer system 135 is able to detect variousother types of discrepancies. For example, computer system 135 candetect a discrepancy between progress projected by a schedule and actualprogress (e.g., progress as determined based on an analysis ofcomponents of the 3D progress view, giving credit for those componentsthat have been properly installed, and not giving credit for componentsthat have discrepancies that need to be addressed).

As another example, computer system 135 can detect a discrepancy betweena planned or targeted productivity level and an actual productivitylevel. FIGS. 8A-C provide examples of alerts being displayed for othertypes of discrepancies. FIG. 8A is an illustration of an applicationrunning on a mobile device that enables a user to set alert notificationparameters, including setting an alert for a planned or targetedproductivity level/score, or setting an alert for a planned progress.FIGS. 8B and 8C are illustrations of an application running on a mobiledevice that provides an alert when a discrepancy is detected between aplanned or targeted productivity level/score and an actual productivitylevel/score.

Based on the above analysis, mapping, and discrepancy detection,computer system 135 is able to provide construction progress status.FIGS. 4 and 5 provide examples of interfaces for providing constructionprogress status. FIG. 4 is an illustration of a web interface thatprovides a milestone progress status for several groups of tasks of abuilding construction project. FIG. 5 is an illustration of anapplication running on a mobile device that provides historic progresstowards a project milestone. As previously mentioned, the constructionprogress status does not provide credit for components that havediscrepancies that need to be addressed.

FIG. 2 is a flow diagram illustrating an example process for monitoringprogress of construction of a structure, consistent with variousembodiments. At block 205, a computer system receives data derived fromsensor readings related to a structure under construction. Sensorreadings, also referred to as sensor reading data or sensor data, aredata generated by a sensor based on environmental properties that aredetected by the sensor. The sensor can be any type of sensor from whichphysical properties related to an environment, such as environment 100of FIG. 1 , can be determined. Examples of sensors include a LIDARdevice, an imaging device (e.g., a camera, a video camera, a mobiledevice, etc.—examples of mobile devices include a smartphone, a portablemedia device, a tablet computer, a laptop computer, a wearable device,etc.), a sonar device, a radar device, a humidity measuring device, areflectivity measuring device, a temperature measuring device, a soundmeasuring device, a density measuring device, a chemical measuringdevice, a depth sensor, a Kinect sensor, among others. The structure canbe any complex structure, such as a building, an airplane, a ship (e.g.,a container ship, an aircraft carrier, a warship, an oil tanker, etc.),a submarine, a space vehicle (which can be or can include a space launchvehicle), among others. The data derived from sensor readings can be orcan include the raw sensor reading data, or can include data that isgenerated based on processing of the sensor reading data.

The sensor data can be obtained in any appropriate way. For example, thesensor data can be obtained by a robot with one or more sensors thatroams a construction site related to a structure, by a drone with one ormore sensors that flies around a construction site related to astructure, by a person with one or more sensors that walks around aconstruction site related to a structure, by an autonomous vehicle withone or more sensors that navigates around a construction site related toa structure, etc. The robot/drone/autonomous vehicle/etc. can utilizedata derived from design plan data related to the structure, or otheravailable data, such as map data, to navigate the environment associatedwith the structure. As the robot/drone/autonomous vehicle/person/etc. istraversing the environment with the one or more sensors, sensor readingsof the environment are obtained. The sensor data can be obtained anynumber of times and at any frequency. For example, the sensor data canbe obtained once, can be obtained daily, can be obtained weekly, can beobtained whenever a particular piece of equipment, such as a robot or asensor, is available, can be obtained whenever a particular person isavailable and the weather is acceptable, can be obtained sporadically,etc. The sensor data can be of any needed completeness. For example, thesensor data can be of one portion of a structure, such as one room of abuilding, can be of an entire structure, can be of an entire structureand some amount of surrounding environment, etc.

At block 210, the computer system receives data derived from design plandata of a reference structure. The reference structure can be, forexample, a model of a structure captured by a CAD application during thedesign and planning of the construction of the structure, and thatrepresents the intended physical state of the structure onceconstruction is complete. In an example where the structure is abuilding, the reference structure is the model of the structurerepresented by the design plan data that was captured by the design teamby use of one or more CAD applications during the design and planning ofthe construction of the structure.

At block 215, based on a convolution neural network (CNN), the computersystem identifies components related to the structure underconstruction. Neural networks, including some techniques for generating,training, and using neural networks, are well known in the art, as isevidenced by the following references: Ian Goodfellow, Yoshua Bengio &Aaron Courville, Deep Learning (2016); Alex Krizhevsky, Ilya Suskever &Geoffrey E. Hinton, ImageNet Classification with Deep ConvolutionalNeural Networks (2012); Ali Sharif Razavian, Hossein Azizpour, JosephineSullivan & Stefan Carlsson, CNN Features off-the-shelf: an AstoundingBaseline for Recognition (last rev. May 12, 2014); Charles R. Qi, HaoSu, Kaichun Mo & Leonidas J. Guibas, PointNet: Deep Learning on PointSets for 3D Classification and Segmentation (last rev. Apr. 10, 2017);Sepp Hochreiter & Jürgen Schmidhuber, Long Short-Term Memory, 9 NeuralComputation 1735 (1997); TensorFlow, Recurrent Neural Networks (lastupdated Mar. 8, 2017); and John D. Lafferty, Andrew McCallum & FernandoC. N. Pereira, Conditional Random Fields: Probabilistic Models forSegmenting and Labeling Sequence Data (2001). The CNN was generated andtrained prior to execution of block 210 (the generation and training ofthe CNN will be discussed related to a following figure). While a CNN isused in this example, any type of machine learning system or the likecan be utilized by the technique.

The computer system analyzes, by use of the CNN, the data received atblock 205 and identifies components based on physical propertiesassociated with the component that can be determined based on thereceived data. In an example where the structure is a building and thesensor is a LIDAR device, the data received at block 205 is 3Dcoordinate data from which surface locations of various components orother objects associated with the building can be determined. Some orall of the components of or associated with the structure are identifiedby use of the trained CNN. In some embodiments, when the computer systemis not be able to identify some components, the identification of someor all of the unidentified or ambiguous components is done by a human.For example, the computer system can generate a list of ambiguouscomponents and that list can be provided to one or more humans, who viewa representation of the sensor data, such as by viewing data similar tothe data of FIG. 18 or FIGS. 20A-D, and manually identify thecomponents, such as by adding a label to each component that heidentifies.

At block 220, the computer system identifies components related to thereference structure. In some embodiments, the design plan data of thereference structure includes labels for some or all of the components.When a component is labeled, the computer system can identify thecomponent based on the label. For example, a structural engineer mayinput a structural beam by use of a CAD application during the design ofthe structure, and may label the structural beam as a “structural beam”in the CAD application, or the CAD application may automatically labelthe structural beam. In some embodiments, when some or all components ofthe reference structure do not have labels, the computer system cananalyze data derived from the design plan data to identify thenon-labeled components of the reference structure, such as by use oftechniques similar to those previously discussed (e.g., a CNN, a human,some other technique, etc.).

In an example, the computer system reads the design plan data andgenerates data derived from the design plan data that is compatible withthe CNN. The computer system then identifies some or all of thenon-labeled components by use of the trained CNN. In some embodimentswhere the computer system is not able to identify some components, theidentification of some or all of the unidentified components is done bya human. In some embodiments, components are labeled via a referencefile. For example, FIG. 9 is an illustration of an application runningon a mobile device that enables a user to set upload variousproject-related files, such as an elements csv file. The elements csvfile can include labels for various components (also referred to aselements), and information that enables the computer system to map thelabel data to a corresponding component of the design plan data orsensor data. FIGS. 20A-D are illustrations depicting visualizations ofdata derived from sensor readings of a building after componentsassociated with the building have been identified.

At block 225, the computer system determines a mapping between acomponent of the structure under construction and a correspondingcomponent of the reference structure. In an example, the computer systemcompares data of the structure under construction to data of thereference structure in order to determine an alignment of the two datasets, such as by matching exterior walls and determining an alignmentthat causes the external walls of the two structures to be aligned.FIGS. 19A-C are illustrations depicting aligning data derived from amodel of a building, such as the reference structure, and sensor dataderived from a sensor reading of a building, such as a building underconstruction. FIG. 19A depicts two views, a view of a referencestructure and a view of a structure under construction. FIG. 19B depictsthe two views as they conceptually begin to be aligned, and FIG. 19Cshows the two views after alignment. FIGS. 19A-C are conceptualizationsof the alignment process, and may not reflect how the computer systemactually aligns the views (e.g., the computer system may notincrementally move the two views closer together).

The computer system next begins to identify corresponding components ofthe two structures. In an example, the computer system identifies afirst wall at a particular location with certain dimensions in thestructure under construction, and identifies a second wall at the sameparticular location with the same dimensions in the reference structure,and maps the first wall and the second wall. In another example, thecomputer system identifies a third wall at a particular location withcertain dimensions in the structure under construction, and identifies afourth wall of the reference structure that is located at a slightlydifferent position than the third wall, and that has the samedimensions. The computer system decides that the two walls aresufficiently similar to indicate a high likelihood of beingcorresponding walls, and maps the third wall and the fourth wall. Insome embodiments where the computer system is not able to map some ofthe components, the mapping of some or all of the unmapped components isdone by a human.

At block 230, the computer system detects a discrepancy between acomponent of the structure under construction and a correspondingcomponent of the reference structure. The discrepancy detected can beany of various types of discrepancies. In some embodiments, thediscrepancy is a physical discrepancy. Examples of physicaldiscrepancies include a structure under construction component beinglocated at a different location as compared to its correspondingreference structure component, being of an different dimension ascompared to its corresponding reference structure component, being of adifferent color as compared to its corresponding reference structurecomponent, being comprised of a different material as compared to itscorresponding reference structure component, having a different surfacetexture as compared to its corresponding reference structure component,being a different component as compared to its corresponding referencestructure component (e.g., being a 45 degree angle joint as compared toa 90 degree angle joint, being an a brand one air conditioning unit ascompared to a brand 2 air conditioning unit, being an iron pipe ascompared to a copper pipe, etc.), etc.

In some embodiments, the difference may need to be above a predeterminedthreshold to be considered a reportable discrepancy, also sometimesreferred to as an error (e.g., a location discrepancy in excess of ⅛ ofan inch is determined to be a reportable discrepancy or error). In somecases, the threshold, or accuracy tolerance, is input by the design teamor by other methods as annotations on the components of the designplans. For example, a pipe may have an accuracy tolerance of ⅛ of aninch, and that tolerance may be added as an annotation or label on thepipe. When the discrepancy between the location of the component in thereference structure and the structure under construction is greater thatthe accuracy tolerance, the discrepancy can be reported as an error.

At block 235, the computer system estimates construction progress statusbased on the mapping and the discrepancy. With current systems, when aconstruction contractor, such as a drywall company, reports progressstatus, the report often gives credit for completed construction thathas unacceptable levels of error due to an error being undetected.Further, since payments are made based on construction progress, once apayment is made for completing a portion of construction, and an erroris later detected, the incentive for the construction contractor torectify the error is reduced due to the construction contractor havingalready received payment for the construction.

With the disclosed technique, a discrepancy can be detected muchearlier, such as upon obtaining sensor data for the structure underconstruction. When the discrepancy meets a certain criteria, such asbeing significant enough to cause additional work or re-work, thediscrepancy can be reported as an error. With the disclosed technique,even though some amount of construction has been completed, when thecompleted construction includes an error, no credit may be given for thecompleted construction that includes the error. As a result,construction progress status will flag that some completed constructionincludes an error, and the construction progress status will not givecredit for the completed construction that includes the error. Theconstruction contractor will resultantly receive no progress payment forthe construction that includes the error, and will have to fix the errorbefore a progress payment will be made. The construction company isincentivized to fix the error due to a progress payment being held upuntil the error is fixed.

FIGS. 12 and 14 are illustrations of an application running on a mobiledevice that enables a user, such as a project manager, to reviewinvoice-related data. A project manager can use the application of FIG.12 or 14 to decide to forego payment of an invoice received from asub-contractor for completion of a milestone when the completed workincludes errors, as detected by the disclosed technique. FIG. 15 is anillustration of an application running on a mobile device that enables auser, such as a project manager, to review budget-related data. FIGS.13A and B are illustrations of an application running on a mobile devicethat enables a user, such as a sub-contractor, to submit a new invoice.FIG. 16 is an illustration of an application running on a mobile devicethat enables a user, such as a project manager, to invite a user, suchas a sub-contractor, to access data of the application, such as budgetor invoice data, or to utilize the application.

At block 240, the computer system estimates a schedule for completion ofa project milestone or other relevant task, and at block 245 thecomputer system estimates a cost for completion of the project milestoneor other relevant task. To facilitate estimation of a schedule impact orcost impact due to an error, a recurrent neural network (RNN) can beused. While a RNN is used in this example, any type of machine learningsystem or the like can be utilized by the technique. Dynamic temporalbehavior of a RNN can be leveraged to determine how much of completedconstruction may need to be modified or removed and reconstructed inorder to fix an error. The computer system can estimate, based on theRNN, the schedule and cost impacts due to having to modify or remove andreconstruct a portion of the completed construction in order to rectifythe error. The computer system can compare the estimated schedule orcost to a reference schedule or cost, and can flag discrepancies above acertain threshold.

For example, FIGS. 9 and 11 are illustrations of an application runningon a mobile device that enables a user to set upload variousproject-related files, such as a budget csv file. The budget csv file ofthe example includes one or more reference budgets and includes a crossreference to one or more project milestones. The computer system cancompare the schedule or cost estimate to a reference schedule or budget,and can flag a discrepancy that is above a certain threshold. In someembodiments, reference schedule data is input directly by use of anapplication. For example, FIG. 10 is an illustration of an applicationrunning on a mobile device that enables a user to customize projectsettings, such as a reference schedule completion date for a particularproject milestone. Examples of project milestones include the completionof electrical, HVAC, etc. for the building.

The computer system can also monitor various aspects related to theprogress, schedule, or cost. For example, the computer system can detectwhen an estimated progress, schedule, cost, productivity, efficiently,etc. related to the project meets a criteria. For example, FIG. 6 is anillustration of an application running on a mobile device that enables auser to set an alert, such as an alert that triggers if project progressis below a certain threshold as of a certain date, among others.

In an example, a carpentry contractor installs a wall that includes anopening that is one eighth of an inch too small for a window frame thatwill be installed in the opening. If undetected, the error may not becaught until after subsequent work occurs. For example, the error maynot be caught until after the window frame arrives at the constructionsite and a crew attempts to install the window frame and determines thatthe window frame will not fit in the wall opening. During the timebetween completion of the wall opening and detection of the error,subsequent work of installing electrical wiring, plumbing, andinsulation in the wall, sheetrocking the wall, and taping the sheetrockoccurs. In order to fix the error, some or all of this completedsubsequent work may need to be modified or removed and reinstalled,resulting in a significant schedule and cost impacts.

With the disclosed technique, the discrepancy can be detected before anysubsequent work occurs. Because the discrepancy is detected early and isdetermined the be an error that requires additional work to fix, theschedule and cost impact related to the error can be reduced. Forexample, when the computer system determines that there is an error, thecomputer system can notify project managers. The project managers cantake steps to prevent any subsequent work from being done, resulting ina reduction in the amount of labor needed to fix the error and acorresponding reduction in the schedule and cost impacts related tofixing the error. Also as a result of the discrepancy being detectedearly and being determined the be an error, progress status, schedule,or cost estimates have improved accuracy as compared to currenttechniques. Because the error is detected early, progress statusestimates do not give credit for completed work that includes an error,resulting in an improved accuracy progress status estimates. Further,schedule and cost estimates can include the cost and schedule impactsthat result from having to fix the error, resulting in improved accuracyschedule and cost estimates.

FIG. 3 is a flow diagram illustrating an example process of training aneural network, consistent with various embodiments. Neural networks,including some techniques for generating, training, and using neuralnetworks, are well known in the art, as is evidenced by the previouslycited references. At block 305, a computer system receives design plandata for training a neural network, such as a CNN. While a neuralnetwork is used in this example, any type of machine learning system orthe like can be utilized by the technique. The design plan data caninclude 2D or 3D data, among others, and can be used as a reference fortraining the neural network. For example, the design plan data caninclude design plan data related to one or more structures, such asbuildings, airplanes, ships, submarines, space vehicles, etc., as wellas data related to an environment related to the structure, such as alandscape, a basketball court, a parking structure, a structure forsupporting a ship or submarine, etc. The design plan data can furtherinclude labeled components, where each label provides a referenceidentification of a component of the design plan data. For example, thedesign plan data can include data associated with a component, such as apipe. The design plan data includes data from which physical propertiesassociated with a component can be determined, such as architecturaldrawing data of a pipe from which physical dimensions of the pipe, thematerial of the pipe, the thickness of the material of the piper, etc.,can be determined. The design plan data can additionally include datathat identifies the component, such as a label associated with the pipedata that identifies the pipe (e.g., pipe XYZ from vendor ABC).

In an example, a CNN is to be generated and trained in preparation foruse in identifying components of a building, where the data to beanalyzed by the CNN is based on scans of the building, such as sensordata obtained by LIDAR device while scanning the building, or fromsensor data obtained by an imaging device while taking images of thebuilding. Training a neural network involves feeding the neural networksufficient data to enable the network to start recognizing patterns. Thepatterns that are desirable for the neural network to recognize include,for example, components of the design plan data.

In preparation for training the CNN, a computer system receives designplan data (block 305). The design plan data of this example includesdata related to one or more reference buildings, such as design plandata for a portion or all of the one or more reference buildings, for anenvironment related to the one or more reference buildings, etc. Atblock 310, the computer system generates data for training a neuralnetwork, such as by reading in the design plan data, processing thedata, and generating data in one or more formats that are useful fortraining the neural network.

In an example where the sensor devices are a LIDAR device and an imagingdevice, the formats that are useful for training the CNN include 3Dpoint data, the format generated by the LIDAR device, and mpeg4 data,the format generated by the imaging device. The computer system, basedon the design plan data, generates 3D point data and mpeg4 data thatcorrespond to the one or more reference buildings. For example, thecomputer system generates 3D point data and mpeg4 data similar to the 3Dpoint data and mpeg4 data that would be generated by a LIDAR device andan imaging device based on scans of a building that matched the designplan data, such as a building constructed based on the design plan data.In some embodiments, the formats that are useful for training a neuralnetwork are, rather than the format generated by a sensor, the formatread in and analyzed by the CNN. For example, the sensor data may bepre-processed and a derived format generated before being analyzed bythe CNN. In such an example, the format that is useful for training theCNN may be the derived format.

The computer system further generates reference labels of components ofthe design plan data in a format that can useful for training the CNN.The design plan data can include, for example, data that identifiescomponents, such as labels that are associated with the components. Forexample, the design plan data can include architectural drawing datathat define a pipe, and can further include data that identifies thepipe, such as a label with the value “pipe” that is attached to thearchitectural drawing of the pipe.

In some embodiments, the training data further includes data derivedfrom sensor data. Such training data may be obtained based on sensorscans of one or more reference buildings. In an example where thesensors include a LIDAR device and an imaging device, the sensor dataincludes 3D point data generated by the LIDAR device and mpeg4 datagenerated by the imaging device based on sensor scans of a building.Because the sensor data is to be used for training a neural network, thecomputer system further receives identification data that identifiessome or all of the components of the sensor data. For example, theidentification data can identify the 3D point data associated with apipe and can identify the pipe, such as by a label with the value “pipe”that is associated with the 3D point data associated with the pipe. Asanother example, the identification data can identify the mpeg4 dataassociated with a beam and can identify the beam, such as by a labelwith the value “beam” that is associated with the mpeg4 data associatedwith the beam.

At block 320, the computer system generates a neural network, such as aCNN. At block 325, the neural network is trained based on the trainingdata or the training sensor data. In an example, a CNN is trained basedon the training data and the training sensor data. By inputting thetraining data and the training sensor data, along with the associatedidentifications of the components of the training data and the trainingsensor data, the CNN begins to recognize patterns. With sufficienttraining, the CNN begins to recognize components of the building. Withmore training, which can occur over the life of the CNN, the ability ofthe CNN to recognize components improves.

FIG. 17 is a high-level block diagram illustrating an example of aprocessing system in which at least some operations described herein canbe implemented, consistent with various embodiments. The processingsystem can be processing device 1700, which represents a system that canrun any of the methods/algorithms described above. For example,processing device 1700 can be computer system 135, or can be aprocessing device included in robot 110, LIDAR 115, or imaging device120, among others. A system may include two or more processing devicessuch as represented in FIG. 17 , which may be coupled to each other viaa network or multiple networks. A network can be referred to as acommunication network.

In the illustrated embodiment, the processing device 1700 includes oneor more processors 1702, memory 1704, a communication device 1706, andone or more input/output (I/O) devices 1708, all coupled to each otherthrough an interconnect 1710. The interconnect 1710 may be or includeone or more conductive traces, buses, point-to-point connections,controllers, adapters and/or other conventional connection devices. Eachof the processors 1702 may be or include, for example, one or moregeneral-purpose programmable microprocessors or microprocessor cores,microcontrollers, application specific integrated circuits (ASICs),programmable gate arrays, or the like, or a combination of such devices.The processor(s) 1702 control the overall operation of the processingdevice 1700. Memory 1704 may be or include one or more physical storagedevices, which may be in the form of random access memory (RAM),read-only memory (ROM) (which may be erasable and programmable), flashmemory, miniature hard disk drive, or other suitable type of storagedevice, or a combination of such devices. Memory 1704 may store data andinstructions that configure the processor(s) 1702 to execute operationsin accordance with the techniques described above. The communicationdevice 1706 may be or include, for example, an Ethernet adapter, cablemodem, Wi-Fi adapter, cellular transceiver, Bluetooth transceiver, orthe like, or a combination thereof. Depending on the specific nature andpurpose of the processing device 1700, the I/O devices 1708 can includedevices such as a display (which may be a touch screen display), audiospeaker, keyboard, mouse or other pointing device, microphone, camera,etc.

While processes or blocks are presented in a given order, alternativeembodiments may perform routines having steps, or employ systems havingblocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, combined, and/or modified to providealternative or sub-combinations, or may be replicated (e.g., performedmultiple times). Each of these processes or blocks may be implemented ina variety of different ways. In addition, while processes or blocks areat times shown as being performed in series, these processes or blocksmay instead be performed in parallel, or may be performed at differenttimes. When a process or step is “based on” a value or a computation,the process or step should be interpreted as based at least on thatvalue or that computation.

Software or firmware to implement the techniques introduced here may bestored on a machine-readable storage medium and may be executed by oneor more general-purpose or special-purpose programmable microprocessors.A “machine-readable medium”, as the term is used herein, includes anymechanism that can store information in a form accessible by a machine(a machine may be, for example, a computer, network device, cellularphone, personal digital assistant (PDA), manufacturing tool, any devicewith one or more processors, etc.). For example, a machine-accessiblemedium includes recordable/non-recordable media (e.g., read-only memory(ROM); random access memory (RAM); magnetic disk storage media; opticalstorage media; flash memory devices; etc.), etc.

Note that any and all of the embodiments described above can be combinedwith each other, except to the extent that it may be stated otherwiseabove or to the extent that any such embodiments might be mutuallyexclusive in function and/or structure.

Although the present invention has been described with reference tospecific exemplary embodiments, it will be recognized that the inventionis not limited to the embodiments described, but can be practiced withmodification and alteration within the spirit and scope of the appendedclaims. Accordingly, the specification and drawings are to be regardedin an illustrative sense rather than a restrictive sense.

Physical and functional components (e.g., devices, engines, modules, anddata repositories, etc.) associated with processing device 1700 can beimplemented as circuitry, firmware, software, other executableinstructions, or any combination thereof. For example, the functionalcomponents can be implemented in the form of special-purpose circuitry,in the form of one or more appropriately programmed processors, a singleboard chip, a field programmable gate array, a general-purpose computingdevice configured by executable instructions, a virtual machineconfigured by executable instructions, a cloud computing environmentconfigured by executable instructions, or any combination thereof. Forexample, the functional components described can be implemented asinstructions on a tangible storage memory capable of being executed by aprocessor or other integrated circuit chip. The tangible storage memorycan be computer readable data storage. The tangible storage memory maybe volatile or non-volatile memory. In some embodiments, the volatilememory may be considered “non-transitory” in the sense that it is not atransitory signal. Memory space and storages described in the figurescan be implemented with the tangible storage memory as well, includingvolatile or non-volatile memory.

Each of the functional components may operate individually andindependently of other functional components. Some or all of thefunctional components may be executed on the same host device or onseparate devices. The separate devices can be coupled through one ormore communication channels (e.g., wireless or wired channel) tocoordinate their operations. Some or all of the functional componentsmay be combined as one component. A single functional component may bedivided into sub-components, each sub-component performing separatemethod step or method steps of the single component.

In some embodiments, at least some of the functional components shareaccess to a memory space. For example, one functional component mayaccess data accessed by or transformed by another functional component.The functional components may be considered “coupled” to one another ifthey share a physical connection or a virtual connection, directly orindirectly, allowing data accessed or modified by one functionalcomponent to be accessed in another functional component. In someembodiments, at least some of the functional components can be upgradedor modified remotely (e.g., by reconfiguring executable instructionsthat implements a portion of the functional components). Other arrays,systems and devices described above may include additional, fewer, ordifferent functional components for various applications.

Aspects of the disclosed embodiments may be described in terms ofalgorithms and symbolic representations of operations on data bitsstored in memory. These algorithmic descriptions and symbolicrepresentations generally include a sequence of operations leading to adesired result. The operations require physical manipulations ofphysical quantities. Usually, though not necessarily, these quantitiestake the form of electric or magnetic signals that are capable of beingstored, transferred, combined, compared, and otherwise manipulated.Customarily, and for convenience, these signals are referred to as bits,values, elements, symbols, characters, terms, numbers, or the like.These and similar terms are associated with physical quantities and aremerely convenient labels applied to these quantities.

While embodiments have been described in the context of fullyfunctioning computers, those skilled in the art will appreciate that thevarious embodiments are capable of being distributed as a programproduct in a variety of forms and that the disclosure applies equally,regardless of the particular type of machine or computer-readable mediaused to actually effect the embodiments.

1. A method comprising: generating, by a computer system, athree-dimensional (3D) visualization of a building structure that isundergoing construction, wherein the 3D visualization captures a stateof the building structure that includes an object; determining, by thecomputer system, a spatial location of the object in the buildingstructure; mapping, by the computer system, the object of the buildingstructure to an expected object at an expected state in a 3D model ofthe building structure, wherein the mapping is based on the spatiallocation of the object; detecting, by the computer system, a discrepancybetween a physical property of the object of the building structure andan expected physical property of the expected object in the 3D model;determining that the discrepancy exceeds a predetermined threshold,wherein to exceed the predetermined threshold indicates that thediscrepancy constitutes a reportable error; and in response todetermining that the discrepancy constitutes a reportable error:determining a modification to the building structure to compensate forthe discrepancy between the physical property of the object and theexpected physical property of the expected object in the 3D model;adjusting a schedule for construction or a cost estimate to compensatefor an impact of the discrepancy or the modification to the buildingstructure; and sending a message that reports the discrepancy and themodification to the building structure.
 2. The method of claim 1:wherein the object is a first object of the building structure, andwherein the modification to the building structure includes installationof a second object in the building structure, the second object beingdifferent from the first object.
 3. The method of claim 1: wherein theobject is a first object of the building structure, and wherein themodification to the building structure includes removal of a secondobject from the building structure, the second object being differentfrom the first object.
 4. The method of claim 1: wherein the object is afirst object of the building structure, and wherein the modification tothe building structure includes changing a physical property of a secondobject in the building structure, the second object being different fromthe first object.
 5. The method of claim 1: wherein the object is afirst object of the building structure, and wherein the modification tothe building structure includes changing the physical property of theobject in the building structure.
 6. The method of claim 1, wherein themodification to the building structure includes modifying a portion ofthe building structure to accommodate the discrepancy between thephysical property of the object and the expected physical property ofthe expected object in the 3D model.
 7. The method of claim 1: whereinthe 3D visualization is generated based on a LIDAR scan of the buildingstructure, and wherein the spatial location of the object is determinedbased on the LIDAR scan of the building structure.
 8. A computing systemcomprising: a processor; a network interface coupled to the processor;and a memory coupled to the processor and storing instructions which,when executed by the processor, cause the computing system to performoperations including: receiving, via the network interface, sensor datadetermined based on sensor readings of a building structure, wherein thesensor data indicates a physical property of an object associated withthe building structure; analyzing the sensor data to determine a mappingbetween the object of the building structure and a corresponding objectof a three-dimensional (3D) model of the building structure; detecting adiscrepancy between a physical property of the object of the buildingstructure and a physical property of the corresponding object of the 3Dmodel; determining that the discrepancy constitutes a reportable error;and in response to determining that the discrepancy constitutes areportable error: determining a modification to the building structureto compensate for the discrepancy between the object and thecorresponding object in the 3D model; adjusting a schedule forconstruction or a cost estimate to compensate for an impact of thediscrepancy or the modification to the building structure; and sending amessage that reports the discrepancy and the modification to thebuilding structure.
 9. The computing system of claim 8 being caused toperform operations including: adjusting a schedule for construction or acost estimate to compensate for an impact of the discrepancy or themodification to the building structure.
 10. The computing system ofclaim 8 being caused to perform operations including: capturing a 3Dvisualization of the building structure; determining a spatial locationof the object in the building structure; and mapping the object of thebuilding structure to an expected object in the 3D model of the buildingstructure, wherein the mapping is based on the spatial location of theobject.
 11. The computing system of claim 8 further comprising: a LIDARdevice, wherein the sensor data includes 3D data points determined bythe LIDAR device based on a scan of the building structure.
 12. Thecomputing system of claim 8 being caused to perform operationsincluding: generating, based on the sensor data, a 3D visualization ofthe building structure including the object, determining a spatiallocation of the object based on the 3D visualization, wherein themapping is based on the spatial location of the object.
 13. Thecomputing system of claim 8 further comprising: an imaging device,wherein the sensor data includes data determined by the imaging devicebased on a captured image of the building structure.
 14. The computingsystem of claim 8: wherein the object is a component affixed to thebuilding structure, and wherein the corresponding object of the 3D modelis a corresponding component of the 3D model affixed to the buildingstructure.
 15. At least one non-transitory computer-readable storagemedium storing instructions, which, when executed by at least one dataprocessor of a system, cause the system to: capture a three-dimensional(3D) visualization of a building structure that is undergoingconstruction, wherein the 3D visualization represents a state of thebuilding structure that includes an object; determine a location of theobject in the building structure; map the object of the buildingstructure to an expected object in a 3D model of the building structure,wherein the map is based on the location of the object; detect adiscrepancy between the object of the building structure and theexpected object in the 3D model; determine that the discrepancyconstitutes a reportable error; and in response to determining that thediscrepancy constitutes a reportable error: determine a modification tothe building structure to compensate for the discrepancy between theobject and the expected object in the 3D model; and send a message thatreports the discrepancy and the modification to the building structure.16. The at least one non-transitory computer-readable storage medium ofclaim 15: wherein the object is a first object of the buildingstructure, and wherein the modification to the building structureincludes installation, removal, or modification of a second object ofthe building structure, the second object being different from the firstobject.
 17. The at least one non-transitory computer-readable storagemedium of claim 15, wherein the modification to the building structureincludes a modification to a physical structure of the object.
 18. Theat least one non-transitory computer-readable storage medium of claim15: wherein the 3D visualization is based on a LIDAR scan of thebuilding structure, and wherein the location of the object is obtainedbased on the LIDAR scan of the building structure.
 19. The at least onenon-transitory computer-readable storage medium of claim 15, wherein thesystem is further caused to: adjust a schedule for a cost estimate tocompensate for an impact of the discrepancy or the modification to thebuilding structure.
 20. The at least one non-transitorycomputer-readable storage medium of claim 15, wherein the system isfurther caused to: adjust a schedule for construction to compensate foran impact of the discrepancy or the modification to the buildingstructure.